package cn.com.socket;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class ClientSocket {


    private Socket socket;

    public ClientSocket(){

         /*
                实例化Socket时要传入两个参数
                参数1:服务端的地址信息
                     可以是IP地址，如果链接本机可以写"localhost"
                参数2:服务端开启的服务端口
                我们通过IP找到网络上的服务端计算机，通过端口链接运行在该机器上
                的服务端应用程序。
                实例化的过程就是链接的过程，如果链接失败会抛出异常:
                java.net.ConnectException: Connection refused: connect
             */
        try {
            socket = new Socket("localhost", 8088);
            System.out.println("与服务端建立连接");
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    public  void  start(){
        try{
            //低级流,输出字节流
            OutputStream out = socket.getOutputStream();
            //高级流,衔接字符和字节流
            OutputStreamWriter osw = new OutputStreamWriter(out,"UTF-8");
            //高级流,对字符进行块
            BufferedWriter bw = new BufferedWriter(osw);

            PrintWriter pw = new PrintWriter(bw);


            Scanner in = new Scanner(System.in);

            while (true){
                String line = in.nextLine();
                if(line.equalsIgnoreCase("exit")){
                    break;
                }
                pw.println(line);

            }
        }catch (IOException e){
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        ClientSocket client = new ClientSocket();
        client.start();
    }




}
